Skip to content

Dev#241

Open
tenkus47 wants to merge 177 commits into
mainfrom
dev
Open

Dev#241
tenkus47 wants to merge 177 commits into
mainfrom
dev

Conversation

@tenkus47

Copy link
Copy Markdown
Member

No description provided.

harshal-2304 and others added 30 commits May 25, 2026 12:28
* shared component

* ui

* tag removal

* Enhance Dashboard with Series Management and UI Improvements

- Updated Dashboard component to include a new tab for managing series alongside plans.
- Implemented fetching and displaying series data with a new SeriesTable component.
- Refactored add button to a dropdown menu for adding plans and series.
- Improved test cases to reflect changes in button labels and API endpoints.
- Enhanced PlanDeleteDialog to support dynamic entity labels for better reusability.

* integration of plan search, UI not the finalized

* initial commit

* update the filter function for type safety

* Add Dashboard Frontend Plan and Enhance Dashboard Component

- Introduced a comprehensive plan document for the CMS dashboard, detailing goals, backend assumptions, and implementation strategies.
- Refactored Dashboard component to support a unified table for plans and series, including improved filtering and sorting capabilities.
- Implemented a new DashboardContentTable for rendering dashboard data with enhanced UI elements.
- Updated tests to reflect changes in component structure and functionality, ensuring accurate rendering and interaction.
- Added mock data handling for the unified feed to support frontend development without backend dependencies.

* feat(dashboard): add dropdown to create series or plan

- replace the direct Add Plan link with an Add menu for series and plan flows
- restyle the trigger and use dropdown primitives for clearer navigation
- apply prettier formatting and EOF fixes in related create and form UI files

* refactor(create-series): stub series route and tweak dashboard sort table

- replace the full CreateSeries form with a minimal placeholder until the API is ready
- set dashboard sort to recent when the sort select content is clicked
- stop destructuring unused isLoading in the dashboard content table

* feat(create-series): implement series create and edit with CMS integration

- add multi-language series editor with cover upload, plan tabs, and unsaved-change navigation blocking
- add series API module for load, create, update, and full plan snapshot replace with graceful partial failure handling
- rework plan search to store rich plan objects, filter by language, and improve browse and selection UX
- require complete language blocks and a cover image before submit; refine zod validation for languages and image
- remove duplicate series route registration and align dashboard series rows with the unified table type

* feat(create-series): support plan display order and drag reorder

- sort hydrated plans per language using optional display_order from the series detail payload
- document that plan id array order in the replace payload represents display order for the API
- add drag handles to reorder selected plans before save, disabled when only one plan is attached
- remove the desktop-only vertical divider on the series details column for a cleaner split layout

* refactor(create-series): unify series create and update payload with plans

- send name, featured, image_key, and per-language plan ids in one POST or PUT body
- drop the separate plans replace endpoint and client-side author resolution on save
- build plan lists only for languages present in the series name payload
- remove author profile gating from submit enabled state
- show cancel on create as well as edit

* style(create-series): polish series editor and plan picker layout

- align page background, title divider, and language block surfaces with the design spec
- show English, Tibetan, and Chinese labels on language fields and style the add-language control
- resize cover upload placeholder and refine description field backgrounds
- highlight active plan tabs with brand color and muted plan counts
- simplify plan picker chrome and add spacing above the search field

* style(create-series): simplify PlanSearchSelector layout

- remove unnecessary padding from the PlanSearchSelector component

* feat(dashboard): load tabs from unified CMS dashboard items API

- add dashboard items client with tab, pagination, search, and filter params mapped to table rows
- replace separate plan and series fetches and mock all feed with a single React Query load per view
- send language and status filters to the server instead of filtering client-side
- use one content table and pagination state for all, plans, and series tabs
- update dashboard tests and invalidate dashboard-items after plan and series mutations

* feat(dashboard): show plan count badge on series cover thumbnails

- overlay a stack badge with plans_count on series rows in the content table
- map plans_count from dashboard items API responses into table row data
- rename modified column header to Date Modified
- add dashboard test for the accessible series plans badge
- fix CreatePlan cover image tests to match constraints copy key

* feat(dashboard): unify plan and series row actions via DropdownButton

- add entityType to DropdownButton for plan vs series API, labels, and edit links
- use shared dropdown for series rows with delete and status mutations
- remove placeholder onDeleteSeries handler and inline series action menu

* feat(dashboard): enable series featured toggle and align table controls

- route featured PATCH by row kind (plan vs series)
- allow published series rows to toggle featured from the table
- refresh featured star states and shared icon button styles for Featured and Actions
- add test covering series featured toggle

* refactor(dashboard): rely on axios interceptor for auth headers

- remove per-request Authorization headers from dashboard fetch, featured toggle, and row actions
- simplify featured toggle tests to match patch call signature
- tighten status update error handling in DropdownButton

* feat(dashboard): support series metadata API and featured updates

- resolve dashboard series titles from metadata with language preference
- toggle series featured via CMS PUT with featured flag instead of patch endpoint
- migrate series write payloads from name map to metadata array
- improve series detail mapping for metadata, image_key, and plan language fallbacks
- normalize dashboard status to uppercase and link series rows to series-details
- invalidate series cache after row status changes
- fix Tolgee translate prop typing on dashboard table
- add dashboard API tests and expand dashboard component coverage

* fix(dashboard): hide cover column header and align tests

- remove cover image label from dashboard table header
- assert table headers only when rows are present
- validate empty cover column and six column headers in tests

* feat(series-details): add series details page with plan management

- implement series details view with language tabs and plans table
- add plan search, reorder, remove, and featured actions with CMS persistence
- extend series API and dropdown for plan updates and extra menu items
- extract dashboard status and language chips into shared UI helpers
- wire series details route and add mapper and page tests

---------

Co-authored-by: Tech-lo <taylorhent@gmail.com>
- Introduced `uploadDayAudio` and `deleteDayAudio` functions for handling audio uploads and deletions associated with task days.
- Enhanced `SubTask` interfaces to include optional timestamp fields for audio segments.
- Updated `TaskForm` and `SubTaskCard` components to support audio management, including a new `DayAudioSection` for displaying and editing audio timestamps.
- Implemented utility functions for formatting audio timestamps and retrieving audio duration from files.
- Enhanced code formatting in AudioTrimmer component for better readability.
- Simplified conditional checks in SubTaskCard component.
- Improved formatting in subtaskTimestamps validation function for clarity.
feat(task): add audio upload and management features
- Made the task editing feature always editable by setting `isEditable` to true.
- Integrated audio playback for daily tasks by adding `dayAudioUrl` to the `SubtaskCard` component.
- Improved the `DayAudioSection` to manage audio uploads and deletions more effectively, including UI enhancements for better user experience.
- Refactored the `DropdownButton` to streamline the dropdown menu structure.
- Commented out the `status` variable assignment to improve code clarity and prevent potential confusion regarding its usage.
…DayAudioSection

- Updated the conditional rendering in SubtaskCard to ensure both start and end timestamps are checked before displaying the audio player.
- Removed unnecessary whitespace in DayAudioSection for cleaner code formatting.
- Refactored DropdownButton to enhance readability by adjusting indentation and structure.
- drive tab, search, language, status, page, and page size from the URL
- add helpers to parse, serialize, and map dashboard URL state to API params
- debounce search input before committing search to the URL
- reset page when filters change and clamp page when results shrink
feat(task): enhance audio management and task editing capabilities
feat(dashboard): sync filters and pagination to URL query params
* series inclusion

* lint

* handle series loading and error states

* lint

* naming

* lint

* updated with serach filter
- Updated package version to 2026.05.28.1200.
- Introduced new routes for managing groups, including group creation, editing, and details pages.
- Enhanced the Navbar to include a link for groups management.
- Modified PlanTagSearchInput to conditionally hide the label.
- Replaced error handling in Tags component to utilize a centralized API error message function.
- Added PlanAudioDTO and PlanAudioListResponse interfaces for audio data handling.
- Implemented fetchPlanAudioList function to retrieve audio files associated with plans.
- Introduced attachDayAudio function to link audio files to specific days.
- Updated TaskForm to include plan title in DayAudioSection.
- Integrated PlanAudioSearchInput component for searching existing audio files in DayAudioSection.
- Improved user instructions for audio uploads and management in the UI.
…sk management

- Added new API functions for creating multiple days and bulk deleting days.
- Updated the SideBar component to support day selection mode for bulk actions.
- Enhanced the DayDeleteDialog to handle bulk deletion.
- Refactored usePlanMutations to integrate new API functions for creating and deleting days.
- Improved user experience with feedback messages for successful and failed operations.
- pass seriesId and active language tab via router state from Add New Plan link
- validate location state and pre-fill create form when series is in the list
- disable series and language fields and show contextual heading when locked
- fall back to default create form when series id is missing or invalid
- add tests for Series Details navigation, CreatePlan pre-fill, and state parser
- prevent committing local GitHub issue drafts and related files
- align with existing .cursor ignore for developer-only paths
- re-add .cursor to ignore list to prevent committing local cursor files
- maintain consistency with previous ignore entries for developer-specific files
- lay out plan picker and audio library search on one row in day audio UI
- preserve search, infinite scroll, preview, and attach behavior
- apply formatting-only updates across groups routes and day create dialog
…react-split-pane

- Updated the version of the project to 2026.05.28.1200 in package.json and package-lock.json.
- Added react-split-pane for a responsive layout in PlanDetailsPage, allowing for a mobile preview.
- Introduced MobileView component to display the WeBuddhist Plan Viewer.
- Enhanced SideBar component to accept selectedDayId for better state management.
- Fixed a typo in the CSS variable for JetBrains font.
feat(create-plan): pre-fill series and language from series details
…orm on day change

- Updated the project version in package-lock.json to 2025.11.05.0657.
- Integrated useSearchParams for managing selected day in PlanDetailsPage.
- Added functionality to reset selected task and editing task when the day changes.
- Enhanced TaskForm to reset the form when the selected day changes in create mode.
…age test suite

- Removed tests for updating and reading search params related to day changes in PlanDetailsPage.
- Cleaned up the test suite to focus on relevant functionality after recent updates to state management.
@greptile-apps

greptile-apps Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review. (211 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

tenkus47 and others added 27 commits July 20, 2026 10:12
…ioJobStatus and related interfaces for audio job handling. Update generateDayAudio function to return job status and implement waitForAudioJob for polling. Enhance DayAudioDialog and SubTaskCard to handle audio generation and status updates with user feedback.
…tency. Adjust formatting in GroupEventDetailPage, GroupEventFormPage, and GroupEventsPage to enhance code clarity. Update event API interfaces for better structure and maintainability. Clean up whitespace and formatting across various files to adhere to coding standards.
…bort signal management for audio job polling in DayAudioDialog and SubTaskCard. Update waitForAudioJob to support cancellation and improve user feedback during audio generation processes.
Add audio job management to task API and UI components. Introduce Aud…
…eatures. Add start and end parameters to search text details, update dashboard to utilize roles from group API, and refactor related components for improved role management. Introduce range navigation in SourceDetail and SourceSelectorSheet for better segment handling. Clean up unused hooks and improve utility functions for segment parsing.
…eDetail and SourceSelectorSheet with range loading state. Update role resolution logic in dashboardRowPermissions to handle missing group IDs and improve test coverage for role assignment scenarios.
…ty. Simplify role resolution logic in DashboardContentTable and enhance loading state handling in SourceDetail. Clean up whitespace and formatting for better code clarity.
…olling behavior. Introduce a ref for tracking scroll position and reset state on source selection change. Optimize scrolling logic to prevent unnecessary re-renders and ensure smooth user experience.
Enhance task API and UI components to include segment_numbers in SubTaskPayload and related interfaces. Update TaskForm, SourceReferenceContent, and other components to handle segment_numbers for improved segment management and display. Refactor SourceDetail and SourceSelectorSheet to utilize segment_numbers for better user experience in segment navigation.
…ty. Simplify the assignment logic by removing unnecessary array wrapping, ensuring consistent handling of segment numbers.
- Added `recharts` dependency for data visualization.
- Updated `Analytics` component to include charts and data fetching logic.
- Refactored routing to use constants for paths.
- Enhanced navigation bar to include a link to the analytics page.
Add recharts library and implement analytics dashboard
Enhance search API and dashboard components with new range handling f…
- Removed dependency on PLAN_LANGUAGE constant and integrated useLanguages hook for dynamic language options.
- Updated language selection logic in CreatePlan, PlanTagSearchInput, and other components to utilize new language handling methods.
- Simplified language data management in TagFormDialog and EventMetadataRows for improved clarity and maintainability.
- Enhanced language normalization and retrieval functions across various components to ensure consistent language representation.
…s import from SeriesPlansTable

- Introduced LANGUAGE_CODE_ORDER constant in seriesApi for improved language code handling.
- Cleaned up SeriesPlansTable by removing the unused formatDistanceToNow import, enhancing code clarity.
…ability

- Removed unnecessary whitespace in languagesApi, Analytics, PlanTagSearchInput, useCreateSeriesController, useSeriesForm, useEventForm, and Navbar components.
- Consolidated import statements for better organization and clarity.
Refactor language handling in CreatePlan and related components
@tenkus47
tenkus47 requested a review from Tech-lo July 23, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants